// bzoj1103
// 题意：给定一颗树，给定根节点1号，初始边都是土路，然后接下来按照读入
//       的顺序将每条边变成公路，然后过程中询问从某个节点到根节点土路的
//       个数。节点数<=250000。
//
// 题解：乍一想树链剖分。后来发现，其实用树状数组维护dfs序就好。
//       先得到这棵树的dfs序（记录每个点刚访问和离开的时刻），然后
//       初始对所有节点进入的点赋+1, 离开的点赋-1, 如果将每个边
//       (x, parent(x))变为公路，那么将x进入的点和离开的点变成0。
//       每次询问点w，就是求树状数组对应前缀和然后减一，因为这个求的
//       是节点数，除去根节点。
//
// 统计：5060ms, 1h, 1a
//
// run: $exec < input
#include <cstdio>
#include <algorithm>

int const maxn = 250100;
int head[maxn], end_point[2 * maxn], next[2 * maxn];
int alloc = 1;
int parent[maxn], start[maxn], end[maxn];
int bit_tree[2 * maxn];
int n, tick = 1, bit_len;

void add_edge(int u, int v)
{
	end_point[alloc] = v; next[alloc] = head[u]; head[u] = alloc++;
	end_point[alloc] = u; next[alloc] = head[v]; head[v] = alloc++;
}

int lowbit(int x) { return x & -x; }

int bit_get(int id)
{
	int sum = 0;
	for (; id > 0; id -= lowbit(id))
		sum += bit_tree[id];
	return sum;
}

int bit_get_single(int id)
{
	int sum = bit_tree[id];
	if (id > 0) {
		int tmp = id - lowbit(id);
		id--;
		for (; id != tmp; id -= lowbit(id))
			sum -= bit_tree[id];
	}
	return sum;
}

void bit_update(int id, int delta)
{
	for (; id <= bit_len; id += lowbit(id))
		bit_tree[id] += delta;
}

void bit_set(int id, int v)
{
	int tmp = bit_get_single(id);
	bit_update(id, v - tmp);
}

void dfs(int u, int par)
{
	start[u] = tick++;
	bit_set(start[u], 1);
	parent[u] = par;
	for (int p = head[u]; p; p = next[p]) {
		int v = end_point[p];
		if (v == par) continue;
		dfs(v, u);
	}
	end[u] = tick++;
	bit_set(end[u], -1);
}

int main()
{
	std::scanf("%d", &n);
	bit_len = 2 * n;
	for (int i = 1, x, y; i < n; i++) {
		std::scanf("%d %d", &x, &y);
		add_edge(x, y);
	}

	dfs(1, -1);

	int m;
	std::scanf("%d", &m);
	for (int i = 0, x, y; i < n + m - 1; i++) {
		char ch[4];
		std::scanf("%s", ch);
		if (ch[0] == 'W') {
			std::scanf("%d", &x);
			std::printf("%d\n", bit_get(start[x]) - 1);
		} else {
			std::scanf("%d %d", &x, &y);
			if (parent[y] == x) std::swap(x, y);
			bit_set(start[x], 0);
			bit_set(end[x], 0);
		}
	}
}

